Apache Ant-এ <condition>
টাস্কটি শর্তের ভিত্তিতে নির্দিষ্ট টাস্ক চালানোর জন্য ব্যবহৃত হয়। এটি সাধারণত ব্যবহার করা হয় conditional logic (শর্তসাপেক্ষ লজিক) প্রয়োগ করতে, যেমন যদি কোনো ফাইল বা ডিরেক্টরি বিদ্যমান থাকে, যদি কোনো প্রপার্টি নির্দিষ্ট মানের সাথে মিলে, বা কোনো প্যাটার্ন অনুসারে কিছু ফাইল নির্বাচিত হয়। এটি বিল্ড প্রক্রিয়াতে শর্তাধীন কার্যক্রম পরিচালনা করতে সহায়ক।
<condition>
<taskname ... />
</condition>
এটি একটি মৌলিক উদাহরণ যেখানে condition টাস্ক ব্যবহার করে একটি নির্দিষ্ট কাজ সম্পাদন করা হবে, যদি কোনো ফাইল বা ডিরেক্টরি বিদ্যমান থাকে।
<project name="ConditionExample" default="checkFile" basedir=".">
<!-- Defining condition to check file existence -->
<target name="checkFile">
<condition property="file.exists">
<available file="src/example.txt" />
</condition>
<!-- If file exists, echo a message -->
<echo message="File exists!" if="file.exists"/>
<echo message="File does not exist." unless="file.exists"/>
</target>
</project>
এখানে:
src/example.txt
ফাইলটি বর্তমান ডিরেক্টরিতে আছে কি না।"File exists!"
বার্তা কনসোলে প্রিন্ট হবে।"File does not exist."
বার্তা প্রিন্ট হবে।File exists!
File does not exist.
আপনি যদি কোনো প্রপার্টির মানের উপর ভিত্তি করে শর্ত প্রয়োগ করতে চান, তবে বা শর্ত ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি প্রপার্টির মানের সঙ্গে তুলনা করা হবে।
<project name="ConditionPropertyExample" default="checkProperty" basedir=".">
<!-- Defining condition to compare property -->
<property name="my.property" value="true" />
<target name="checkProperty">
<condition property="is.property.true">
<equals arg1="${my.property}" arg2="true"/>
</condition>
<echo message="Property is true!" if="is.property.true"/>
<echo message="Property is false." unless="is.property.true"/>
</target>
</project>
এখানে:
my.property
প্রপার্টির মান true
এর সমান কি না।"Property is true!"
বার্তা প্রিন্ট হবে।false
হয়, তবে "Property is false."
বার্তা প্রিন্ট হবে।Property is true!
Property is false.
<available>
টাস্কটি ফাইল বা ডিরেক্টরি বা রিসোর্সের উপস্থিতি যাচাই করতে ব্যবহৃত হয়। এটি টাস্কের সাথে শর্ত প্রয়োগের জন্য খুবই কার্যকরী।
<project name="CheckFileDirectory" default="checkDirectory" basedir=".">
<!-- Defining condition to check directory existence -->
<target name="checkDirectory">
<condition property="dir.exists">
<available dir="src"/>
</condition>
<echo message="Directory exists!" if="dir.exists"/>
<echo message="Directory does not exist." unless="dir.exists"/>
</target>
</project>
এখানে:
src
ডিরেক্টরি উপস্থিত কি না।"Directory exists!"
বার্তা প্রিন্ট হবে।"Directory does not exist."
বার্তা প্রিন্ট হবে।Directory exists!
Directory does not exist.
<unless>
টাস্কটি শর্ত প্রয়োগের বিপরীত কাজে ব্যবহৃত হয়, যেখানে আপনি যদি নির্দিষ্ট শর্ত পূর্ণ না হয়, তবেই একটি টাস্ক চালাতে চান।
<project name="UnlessConditionExample" default="checkCondition" basedir=".">
<!-- Defining condition to check property and execute task unless condition is true -->
<property name="is.production" value="false" />
<target name="checkCondition">
<condition property="is.dev.environment">
<equals arg1="${is.production}" arg2="false"/>
</condition>
<echo message="This is a development environment." unless="is.dev.environment"/>
</target>
</project>
এখানে:
is.production
প্রপার্টির মান false
কি না।is.production
false
হয়, তাহলে "This is a development environment."
বার্তা প্রিন্ট হবে।This is a development environment.
<path>
টাস্কের সাথে condition টাস্ক ব্যবহার করে আপনি ক্লাসপাথ চেক বা অন্যান্য রিসোর্সের উপস্থিতি শর্তসাপেক্ষভাবে যাচাই করতে পারেন।
<project name="CheckClasspath" default="checkClasspath" basedir=".">
<!-- Defining classpath condition -->
<path id="my.classpath">
<fileset dir="lib" includes="*.jar"/>
</path>
<target name="checkClasspath">
<condition property="classpath.exists">
<pathref refid="my.classpath"/>
</condition>
<echo message="Classpath exists!" if="classpath.exists"/>
<echo message="Classpath does not exist." unless="classpath.exists"/>
</target>
</project>
এখানে:
my.classpath
ক্লাসপাথ চেক করবে, যেখানে lib
ডিরেক্টরি থেকে JAR ফাইল থাকবে।"Classpath exists!"
বার্তা প্রিন্ট হবে।"Classpath does not exist."
বার্তা প্রিন্ট হবে।Classpath exists!
<condition>
টাস্কটি Apache Ant-এ শর্তসাপেক্ষ লজিক প্রয়োগের জন্য ব্যবহৃত হয়, যা আপনাকে নির্দিষ্ট শর্ত পূর্ণ হলে একটি নির্দিষ্ট টাস্ক চালানোর সুযোগ দেয়। এটি বিভিন্ন শর্তের মাধ্যমে কার্যক্রম নিয়ন্ত্রণ করতে সহায়তা করে, যেমন ফাইল বা ডিরেক্টরি উপস্থিতি চেক করা, প্রপার্টির মানের সাথে তুলনা করা, বা শর্তের ভিত্তিতে আলাদা কাজ করা। <condition>
, <available>
, <equals>
, <unless>
ইত্যাদি টাস্কের মাধ্যমে আপনি আপনার Ant build process-এ শর্তাবলী এবং লজিকাল ফ্লো প্রয়োগ করতে পারেন।
common.read_more